package com.example.socialapp.ui.auth.terms

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp

/**
 * 服务条款和隐私政策界面
 *
 * @param onNavigateBack 返回上一界面的回调
 * @param showPrivacyPolicy 是否显示隐私政策，默认为false (显示服务条款)
 */
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun TermsScreen(
    onNavigateBack: () -> Unit,
    showPrivacyPolicy: Boolean = false
) {
    val scrollState = rememberScrollState()
    
    Scaffold(
        topBar = {
            TopAppBar(
                title = { 
                    Text(
                        text = if (showPrivacyPolicy) "隐私政策" else "服务条款",
                        style = MaterialTheme.typography.titleLarge
                    )
                },
                navigationIcon = {
                    IconButton(onClick = onNavigateBack) {
                        Icon(
                            imageVector = Icons.Default.ArrowBack,
                            contentDescription = "返回"
                        )
                    }
                },
                colors = TopAppBarDefaults.topAppBarColors(
                    containerColor = MaterialTheme.colorScheme.primaryContainer,
                    titleContentColor = MaterialTheme.colorScheme.onPrimaryContainer
                )
            )
        }
    ) { paddingValues ->
        Column(
            modifier = Modifier
                .fillMaxSize()
                .padding(paddingValues)
                .padding(16.dp)
                .verticalScroll(scrollState)
        ) {
            Text(
                text = if (showPrivacyPolicy) "隐私政策" else "服务条款",
                style = MaterialTheme.typography.headlineMedium,
                fontWeight = FontWeight.Bold,
                modifier = Modifier.fillMaxWidth(),
                textAlign = TextAlign.Center
            )
            
            Spacer(modifier = Modifier.height(24.dp))
            
            if (showPrivacyPolicy) {
                PrivacyPolicyContent()
            } else {
                TermsOfServiceContent()
            }
        }
    }
}

@Composable
private fun TermsOfServiceContent() {
    Column {
        SectionTitle(title = "1. 接受条款")
        SectionText(
            text = "通过注册账户或使用我们的服务，您同意受这些服务条款的约束。如果您不同意这些条款，请勿使用我们的服务。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "2. 服务描述")
        SectionText(
            text = "我们提供一个社交平台，让用户能够创建内容、分享信息、与其他用户互动。我们可能会不时更改、升级或删除我们服务的某些功能。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "3. 用户账户")
        SectionText(
            text = "您需要创建一个账户才能使用我们的某些服务。您有责任保持账户信息的准确性，并对账户下发生的所有活动负责。您不得与他人共享您的账户凭证。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "4. 用户内容")
        SectionText(
            text = "您对您在我们平台上发布的内容负全部责任。您不得发布任何违法、有害、威胁、辱骂、骚扰、诽谤、诋毁、恶意、欺骗、侵犯他人隐私、侵犯知识产权或其他不当内容。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "5. 知识产权")
        SectionText(
            text = "我们的服务和内容受知识产权法保护。您不得复制、修改、分发、销售或出租服务的任何部分。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "6. 隐私")
        SectionText(
            text = "请查看我们的隐私政策，了解我们如何收集、使用和共享您的个人数据。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "7. 终止")
        SectionText(
            text = "我们保留在任何时候因任何原因终止或暂停您账户的权利，而无需事先通知。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "8. 免责声明")
        SectionText(
            text = "我们的服务按原样提供，不提供任何明示或暗示的保证。我们不保证服务将不间断或无错误。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "9. 责任限制")
        SectionText(
            text = "在法律允许的最大范围内，我们不对任何直接、间接、偶然、特殊、后果性或惩罚性损害负责。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "10. 法律管辖")
        SectionText(
            text = "这些条款将受中国法律管辖，不考虑法律冲突原则。"
        )
    }
}

@Composable
private fun PrivacyPolicyContent() {
    Column {
        SectionTitle(title = "1. 信息收集")
        SectionText(
            text = "我们收集您提供给我们的信息，如注册信息、个人资料信息等。我们还收集有关您使用我们服务的信息，如设备信息、位置信息、日志信息等。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "2. 信息使用")
        SectionText(
            text = "我们使用收集的信息来提供、维护和改进我们的服务，开发新服务，保护我们的用户，以及向您发送通知和更新。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "3. 信息共享")
        SectionText(
            text = "我们不会与第三方共享您的个人信息，除非：获得您的同意；为了外部处理；出于法律原因；或在业务转让的情况下。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "4. 安全")
        SectionText(
            text = "我们采取合理的安全措施来保护您的个人信息不被未经授权访问或披露。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "5. 您的选择")
        SectionText(
            text = "您可以通过设置来控制我们收集和使用的某些信息。您还可以选择更新、修改或删除您的信息。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "6. Cookie")
        SectionText(
            text = "我们使用Cookie和类似技术来收集和存储信息。您可以通过浏览器设置管理Cookie偏好。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "7. 国际数据传输")
        SectionText(
            text = "您的信息可能被传输到并存储在您所在国家/地区以外的服务器上。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "8. 儿童隐私")
        SectionText(
            text = "我们的服务不面向13岁以下的儿童，我们不会故意收集13岁以下儿童的个人信息。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "9. 政策变更")
        SectionText(
            text = "我们可能会不时更新我们的隐私政策。我们会通过应用内通知或其他方式通知您任何重大变更。"
        )
        
        Spacer(modifier = Modifier.height(16.dp))
        
        SectionTitle(title = "10. 联系我们")
        SectionText(
            text = "如果您对我们的隐私政策有任何问题，请联系我们的客服团队。"
        )
    }
}

@Composable
private fun SectionTitle(title: String) {
    Text(
        text = title,
        style = MaterialTheme.typography.titleMedium,
        fontWeight = FontWeight.Bold,
        modifier = Modifier.padding(vertical = 8.dp)
    )
}

@Composable
private fun SectionText(text: String) {
    Text(
        text = text,
        style = MaterialTheme.typography.bodyLarge,
        modifier = Modifier.padding(start = 8.dp)
    )
} 